/**
 * vicente b. lópez plaza 2º dam alquerias 2013
 */

/**
  * CHANGELOG :
 */
package serpienteME;

import java.awt.Color;
import java.awt.Graphics;

// import java.util.Vector;

public class Mapa {

	// ** conf. del nivel/mapa
	int id; // nivel
	private char[][] casilla; // Array <char> [][]

	// private int pos_x; // pos x,y inicial del jugador de la partida (norm.
	// centro)
	// private int pos_y;
	// private int v; // velocidad del movimiento

	Mapa() {
	};

	public Mapa(int i) {
		this.id = i;
		
		// esto crea una matriz proporcional al tamaño de los pixels
		casilla = new char[(conf.WIDTH / conf.PIXEL)][(conf.HEIGHT / conf.PIXEL)];

		init();

		// showAscii(); esto servira para generar mapas

		// esto es para el multijugador
		// Vector[]<Raton> rs;
		// Vector[]<Serpiente> s;

	}

	public void dibujar(Graphics g) {
		// pantalla borrada
		g.setColor(Color.BLACK);
		g.fillRect(0, 0, conf.WIDTH, conf.HEIGHT);
		
		// dibujamos el mapa actual
		for (int i = 0; i < (conf.convertX(conf.WIDTH)); i++)
			for (int j = 0; j < (conf.convertX(conf.HEIGHT)); j++)
				if (casilla[i][j] == conf.PIEDRA) {
					g.setColor(Color.MAGENTA);
					g.fillRect(conf.convertY(i), conf.convertY(j), conf.PIXEL,
							conf.PIXEL);
				} else if (casilla[i][j] == conf.QUESO) {
					g.setColor(Color.YELLOW);
					g.fillOval(conf.convertY(i), conf.convertY(j), conf.PIXEL,
							conf.PIXEL);
				} else if (casilla[i][j] == conf.RATON) {
					g.setColor(Color.CYAN);
					g.fillOval(conf.convertY(i), conf.convertY(j), conf.PIXEL,
							conf.PIXEL);
				}
	}

	public char getInfo(int i, int j) {
		return casilla[i][j];
	}

	private void init() {

		// el mapa basico es un cuadrado con piedras alrededor 
		// que nos serviran de limites
		
		for (int i = 0; i < (getWidth()); i++) {
			for (int j = 0; j < (getWidth()); j++) {
				if (j == 0 || j == (getWidth()-1) || i == 0 || i == (getWidth()-1)) {
					casilla[i][j] = conf.PIEDRA;
				} else {
					casilla[i][j] = conf.VACIA;
				}
			}
		}

		// mapa de prueba... 
		// se lee desde un array como pide el ejercicio
	
		casilla[12][11] = conf.PIEDRA;
		casilla[13][10] = conf.PIEDRA;
		casilla[14][9] = conf.PIEDRA;
		casilla[15][8] = conf.PIEDRA;
		casilla[16][7] = conf.PIEDRA;
		casilla[17][6] = conf.PIEDRA;
		
		casilla[18][11] = conf.PIEDRA;
		casilla[19][12] = conf.PIEDRA;
		casilla[20][13] = conf.PIEDRA;
		casilla[21][14] = conf.PIEDRA;
		casilla[22][15] = conf.PIEDRA;
		casilla[23][16] = conf.PIEDRA;
		
		
		casilla[32][18] = conf.PIEDRA;
		casilla[31][19] = conf.PIEDRA;
		casilla[30][20] = conf.PIEDRA;
		casilla[29][21] = conf.PIEDRA;
		casilla[28][22] = conf.PIEDRA;
		casilla[27][23] = conf.PIEDRA;
		casilla[26][24] = conf.PIEDRA;
		casilla[25][25] = conf.PIEDRA;
		
		
		casilla[8][28] = conf.PIEDRA;
		casilla[9][29] = conf.PIEDRA;
		casilla[10][30] = conf.PIEDRA;
		casilla[11][31] = conf.PIEDRA;
		casilla[12][32] = conf.PIEDRA;
		casilla[13][33] = conf.PIEDRA;
		casilla[14][34] = conf.PIEDRA;
		casilla[15][35] = conf.PIEDRA;

	}

	public void hola() {
		System.out.println(getWidth()  + "/" +getHeight());
	}

	public void update(char t, int x, int y) {
		casilla[x][y] = t;
	}

	private int getHeight() {
		return casilla[1].length;
	}

	private int getWidth() {
		return casilla[0].length;
	}

	
	/*
	 * private void showAscii() { for (int i = 0; i < this.getHeight() - 1; i++)
	 * { for (int j = 0; j < this.getWidth() - 1; j++) { if (casilla[i][j] ==
	 * conf.VACIA) { System.out.print("#"); } else {
	 * System.out.print(casilla[i][j]); } } System.out.print("\n"); }
	 * 
	 * }
	 */
}
//@vicente $25-10-2013